In an object-oriented programming environment, a user may create objects that interact with other objects in the environment. Each object in the environment can consume system resources. Examples of such system resources include memory, sockets, and file handles. When an object is no longer needed by the system, an object may be destroyed to free any system resources consumed by that object.